Many computer systems are designed to be "fault-tolerant". Typically, these systems can experience one or more temporary or permanent circuit failures and continue to function without loss of data or without introducing serious errors into the data. Such systems typically vary as to how many faults can be "tolerated" and as to how each fault is handled.
In order to be fully fault-tolerant, a computer must be able to survive a fault which renders one or more portions of its main memory inoperative. In such a situation, to avoid losing or corrupting data, it is necessary to have a second, or backup copy, of the data available in a separate memory location which cannot be disabled by the original fault. Therefore, in fault-tolerant systems it is common to have at least two main memory units and to maintain a copy of the system data simultaneously in both units.
However, maintaining a duplicate copy of data in two separate memories causes a significant reduction in the computational speed of the computer since every data storage operation must be performed twice and such operations are usually supervised by the processing element which cannot simultaneously perform normal processing operations.
In order to reduce the time penalty associated with maintaining duplicate data copies, some prior art fault-tolerant systems maintain only one copy of the data during normal processing operations and, at periodic intervals, update a data copy maintained in a backup memory. This scheme works satisfactorily unless a fault occurs in the main memory which disables portions that contain data which has not yet been copied or unless a fault occurs during the copying operation itself which disables either the main memory or the copy memory so that the copy cannot be completed--such failures can cause loss of data integrity.
It is an object of the present invention to provide a memory backup system in which no single failure can cause a loss of data or data integrity.
It is another object of the present invention to provide a memory backup system in which backup can be carried out quickly and efficiently during a context switch.
It is yet another object of the present invention to provide a memory backup system in which data copying can be carried out without consuming large amounts of processing time thereby slowing processing speed.
It is a further object of the present invention to provide a memory backup system in which the required circuitry to provide complete backup capabilities is minimized.